//
//  WXStickyTransformer.h
//  WXStickyTabView
//
//  Created by Zhiqiang Bao on 15-1-11.
//  Copyright (c) 2015年 Zhiqiang Bao. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

/**
 Once a scrollView transforming success, the tags will be set
 on the scrollView and it's subviews. Do not change the tags
 of them.
 
 The scrollView's delegate must not implement below selector:
 
 swizzledScrollViewDidScroll:
 
 */
typedef enum _WXStickyViewTag
{
    WXStickyViewTagTabBarContainer  = 0x1212,
    WXStickyViewTagTabBarHeader     = 0x1313,
    WXStickyViewTagTabBar           = 0x1414,
    WXStickyViewTagScrollView       = 0x1515,
}WXStickyViewTag;

@interface WXStickyTransformer : NSObject

/**
 *  The default transformer, it doesn't mean you can't use [[WXStickyTransformer alloc] init].
 *
 *  @return the default transformer
 */
+ (WXStickyTransformer *)defaultTransformer;

/**
 *  To transform the scrollView be sticky. The last transforming will be removed.
 *
 *  @param scrollView    the scrollView to be transform
 *  @param tabBarHearder the header view beyond tabBar view
 *  @param tabBar        the tabBar view
 */
- (void)transformScrollView:(UIScrollView *)scrollView
           withTabBarHeader:(UIView *)tabBarHearder
                  andTabBar:(UIView *)tabBar;

/**
 *  To restore the scrollView. It will remove all transforming.
 *
 *  @param scrollView the scrollView to be restore
 */
- (void)restoreScrollView:(UIScrollView *)scrollView;

@end
